// 给你一个正整数 n ，生成一个包含 1 到 n2 所有元素，且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

/**
 * @param {number} n
 * @return {number[][]}
 */
var generateMatrix = function (n) {
    let t = 0, r = n - 1, b = n - 1, l = 0;
    const ans = new Array(n).fill(0).map(() => new Array(n).fill(0));

    let num = 1;
    while (num <= n * n) {
        // 上面那行 从左到右
        // console.log(l, r, t, b)
        for (let i = l; i <= r; i++) ans[t][i] = num++;
        t++;
        // 右面那列 从上到下
        for (let i = t; i <= b; i++) ans[i][r] = num++;
        r--;
        // 下面那行 从右到左
        for (let i = r; i >= l; i--) ans[b][i] = num++;
        b--;
        // 左侧那列 从下到上
        for (let i = b; i >= t; i--) ans[i][l] = num++;
        l++;
    }
    // console.log(ans)
    return ans;
};

module.exports = generateMatrix;